1. Field of Technology
This invention relates to systems and processes for testing and evaluating software, and in particular, to a process for testing commercial, off-the-shelf software products to determine functionality for specific criteria and presenting decision making information in an interactive web-based repository.
2. Related Art
In both parallel and as an integral part of the software product line paradigm, the use of commercial off-the-shelf products, as components of larger systems, is becoming increasingly commonplace. Shrinking budgets, accelerating rates of commercial off-the-shelf enhancement, and expanding system requirements are all driving this process. The shift from custom development to commercial off-the-shelf based systems is occurring in both new development and maintenance activities.
A software product line is a set of software-intensive systems sharing a common, managed set of features that satisfy the specific needs of a particular market segment or mission and that are developed from a common set of core assets, including commercial off-the-shelf software, in a prescribed way. In a software product line, a new product is formed by taking applicable components from the base of common assets, using parameterization or inheritance to tailor them as necessary, and using a disciplined process to assemble the collection under the umbrella of a common, product-line wide architecture. Building a new product (system) becomes more a matter of assembly or generation than creation; the predominant activity is integration rather than programming. Software product line engineering allows software system development to be completed faster and at less cost by defining requirements and assets to be used in multiple applications.
In the past, users have been forced to rely on the software manufacturer""s company description in order to determine software capabilities. These descriptions are often generic and do not provide the user with information as to specific applications to which the software is capable or not capable. Besides the information provided by manufacturer""s packaging or sales literature, there is no other source of information that allows the user to readily assess whether a particular piece of commercial-off-the-shelf software is capable of performing a particular function for the user.
Therefore, the art needs a method for providing users with the necessary data to readily determine whether a particular piece of software will perform a specific function, thereby fitting within the context of the users"" specific application(s).
The present invention is for a software suitability testing system using a software product line engineering approach. The software suitability testing system applies to commercial, off-the-shelf components, or software products, being considered for use in a software product line engineering environment. The system tests software products to determine the software""s capabilities. The capability data is then made available to software users such that the applications of a particular piece of software, or a particular software product, are readily available to the users.
A key element in the product line concept is the testing of commercial, off-the-shelf software products to determine whether they are suitable for product line use. The confusion is taken out of the software selection process by testing off-the-shelf software products in an organized manner and presenting decision making information in an interactive web-based repository. The present system focuses on testing software products according to the requirements of a specific product line. This system gives a customer a much more cost effective approach to selecting a software product as compared to testing software products just for a specific system and provides much more meaningful results to the customer than testing a software product for universal usage.
Building systems according to a product line means defining the commonalities and variabilities in a family of software products and building one architecture/infrastructure that can meet those needs. The testing process of the present system begins by working with a chosen product line architect and determining the appropriate testing criteria for the specific components within that product line architecture. The identified criteria is taken and distributed in the software industry for industry review and comment. After all appropriate comments have been incorporated, a sample software product is requested for testing. Throughout the testing process of the software product, the software product vendor or supplier has the opportunity to dispute any of the results before the suitability test report is published. This ensures the accuracy of the results. After the suitability test report is completed, the testing results are placed on the World Wide Web (xe2x80x9cWebxe2x80x9d) where customers can compare software products in a component area against the specific criteria that are important for the system presently being developed.
An aspect of the present invention is that it provides an assessment of components (software products) eligible for inclusion in the base of common assets. This assessment enables a rapid component selection process by a system developer/integrator.
Another aspect of the present invention is that it provides users with data, resulting from the testing process, that allows users to readily determine whether a particular piece of software (or a particular software product) will perform a specific function within the context of a specific application. In addition, users are able to readily and easily compare the suitability of competing software products.
Another aspect of the present invention is that it results in data that describes the capabilities of a particular piece of software, thereby allowing users to simply refer to this data to determine software capabilities.